With advent in technology, organizations are increasingly capturing and storing machine generated data resulting in generation of extremely large amounts of the data. The data generated comprises server logs or records of user interaction with websites, sales transaction data, product information, etc. In order to effectively organize the data, the organizations utilize On-Line Analytical Processing (OLAP) systems. Generally, OLAP systems facilitate and manage analytical applications built by aggregating transactional data. OLAP systems may be built on a variety of transactions such a database management system transactions, business, or commercial transactions.
The OLAP systems enable users to analyze multidimensional data. Generally, analysis on the multidimensional data may include one or more operations such as aggregating the data, slice and dice and drill-down. The slice and dice operation comprises taking specific sets of data and viewing the data from multiple viewpoints. Basis for the OLAP system is an OLAP cube. The OLAP cube is a data structure allowing for fast analysis of the data with capability of analyzing the data from multiple perspectives. Typically, the OLAP cubes are composed of numeric facts, called measures, and are categorized by dimensions. The measures are derived from fact tables, which are typically composed of the measurements or data of a business process, e.g. number of products sold in a store. The dimensions are derived from dimension tables. In other words, a measure has a set of labels, where the description of the labels is described in corresponding dimension.
The OLAP systems typically categorized as either a Relational Online Analytical Processing (ROLAP) or in a Multidimensional Online Analytical Processing (MOLAP). In ROLAP, the data is stored in relational databases. As known, a response time for processing a query in ROLAP may be unpredictable. Generally, SQL statements are generated to query the relational databases used as ROLAP Data warehouse. The response time can be long if size of the data is large.
On the other hand, in MOLAP, the data is stored in multidimensional cubes. In MOLAP, the data is pre-computed and the data is stored in an OLAP cube. The MOLAP system may store the data as an in-memory multidimensional data structure, rather than in a relational database. The pre-processing and storage of the data allows for fast query performance due to optimized storage, multidimensional indexing and caching of the data. As the data is stored in OLAP cubes, the data may be retrieved with a predictable response time and much faster than in ROLAP.
As the data is pre-aggregated in MOLAP, retrieval of the data may be significantly faster. However, when the data is aggregated, if more selections are made for the dimensions to be retrieved, the flexibility in viewing the data may not be effective. Further, as the OLAP cubes comprise the data in multiple dimensions, it may be difficult to browse the data in the OLAP cubes. Further, multiple dimensions may lead to explosion of the data. This is because the amount of the data grows exponentially as the number of dimensions increase.